1. Field of the Invention
The invention relates to an information processing apparatus for generating print data which can be interpreted by a printer and relates to a control method of such an apparatus and a printer driver that is stored in a memory medium. More particularly, the invention relates to a process for generating print data obtained by transforming image data in print data to print data of a resolution suitable for a printing process.
2. Related Background Art
First, a construction of a functional module, a procedure for a printing process, a nature of data, and a flow of the data in a conventional print system will be described with reference to FIG. 4.
In FIG. 4, reference numeral 400 denotes a host computer (for example, personal computer or the like) constructing the print system; and 410 a printer. The host computer 400 and printer 410 are connected by a communication path 409.
Reference numeral 401 denotes an application program to provide functions such as word processor, spreadsheet, and the like; and 402 indicates an operating system (OS) for intervening between the application program 401 and hardware (not shown) which is provided for the host computer 400 and servicing various processes for the application. For example, Microsoft Windows 95 (xe2x80x9cWindowsxe2x80x9d is a registered trademark of Microsoft) is well known.
The application program 401 uses an application programming interface (API) which is provided by the operating system 402 and constructs a function to be provided by the application program (shown by an arrow 411). In case of the Windows OS, the application program 401 issues an API called a GDI (Graphic Device Interface) function.
Reference numeral 403 denotes a printer driver to generate a print command in accordance with a request from the operating system. The operating system 402 transforms the GDI function as information such as character, figure, image, or the like to be printed by the application program 401 to a DDI (Device Driver Interface) function and sends the DDI function to the printer driver (shown by an arrow 412). The printer driver 403 generates a print command (including a PDL (page description language), image data developed by the printer driver, and the like) to be sent to the printer on the basis of those information and returns it to the operating system 402 (shown by an arrow 413). The print command which is generated by the printer driver 403 conforms with a grammar of the page description language (PDL) which the printer 410 has.
As kinds of PDLS, Canon LIPS IV (xe2x80x9cLIPSxe2x80x9d is a trademark of Canon Inc.), Adobe PostScript (xe2x80x9cPostScriptxe2x80x9d is a registered trademark of Adobe), for example, are known.
The operating system 402 sends the print data including the print command received from the printer driver 403 to the printer 410 via the communication path 409. The application program 401 also allows a document to be displayed on a display 421. In a manner similar to the case of printing and outputting, a GDI function is outputted to a drawer (not shown) of the operating system 402 and a display driver (not shown) draws and outputs a DDI function generated by the operating system onto a VRAM (shown by an arrow 422), so that it is displayed and outputted on the display 421. The above functional modules are provided in the host computer 400 constructing the print system.
Reference numeral 404 denotes a translator for processing the print data sent from the host computer and analyzing various print commands in accordance with the grammar of the PDL. Reference numeral 405 denotes a draw command generator to which an analysis result of the print command is inputted from the translator 404 (shown by an arrow 414). The generator 405 transforms it to a draw command and stores it in a draw command memory 406 (shown by an arrow 415). The draw command is used for rearranging draw objects in accordance with the order of drawing the print data described by the page description language onto a recording medium and adding a process for enabling a drawing process to be easily performed. For example, in case of a font, data obtained by holding an address indicative of a location in a memory where a bit map image shown by a code of the font exists or compressing a bit map obtained by developing a complicated draw object and holding the compressed bit map is called a draw command. In a page printer such that the printing process cannot be stopped on the halfway of one page, after all of the print commands of one page are completely transformed to draw commands, a desired draw command is read out from the draw command memory 406 (shown by an arrow 416) and sent to a drawer 407 (shown by an arrow 417).
Reference numeral 406 denotes the draw command memory to store the draw commands; 407 the drawer for performing a drawing process in response to the draw command inputted from the draw command generator 405 and generating a bit map image onto a bit map image generation memory (not shown); 420 an engine interface for reading out the bit map image generated by the drawer 407 (shown by an arrow 418), transferring it as a video signal to a printer engine 408 and controlling the operation of the printer engine (shown by an arrow 419); and 408 the printer engine for generating a permanent visible image onto a sheet on the basis of a control signal and a video signal which are supplied from the engine interface 420. The above functional modules are provided in the printer 410. Although a laser beam printer engine is used as an engine of a page printer in the embodiment, it is obviously possible to use any other printer engine such as printer engine of a type in which an electrostatic latent image is generated on a photosensitive drum by an LED array or the like or printer engine of a type in which an ink droplet is emitted.
A process for designating a print quality in the print system will now be described.
The conventional print system has a function such that when the user tries to perform the printing operation on the host computer (personal computer: PC) 400, a finishing quality (resolution, gradation, and the like) of a document to be printed is designated by designating a print purpose in a property of the printer driver.
For example, FIG. 1 shows an example of a picture plane which is operated when a print quality is designated in the host computer 400 for generating print data in a conventional print system. In the example, FIG. 1 shows a startup picture plane of a utility program serving as a part of a printer driver for a laser beam printer made of Canon Inc. (in many cases, in a dialog box for printing which is displayed when printing on an application, the startup picture plane is displayed in the case where a display of a property of a printer is designated).
In the diagram, reference numeral 101 denotes a whole designated picture plane to input various setting items which are set for the printer. The designated picture plane 101 is displayed as a window onto a display screen of a host computer (not shown) as necessary. Reference numeral 102 denotes a title section of the designated picture plane 101. Reference numerals 103 to 110 indicate tabs each showing symbolically a main classification of the designated item. In FIG. 1, a xe2x80x9cmainxe2x80x9d tab to designate a print purpose is selected. Reference numeral 111 denotes an icon display area to display an icon to designate the print purpose. Reference numerals 112 to 116 indicate icons each showing a print purpose. In the diagram, a state where a xe2x80x9ctext/tablexe2x80x9d icon has been selected is shown.
Besides the text/table icon 112, DTP icon 113, quick text icon 114, quick DTP icon 115, and save toner icon 116 shown in the diagram, other print purposes can be displayed in the icon display area 111 by scrolling in the lateral direction and another desired print purpose can be further selected. However, a description in such a case is omitted.
Reference numeral 117 denotes a scroll list area where a menu of parameters which are set by selecting the icon 112 is displayed while being scrolled. In the scroll list area 117, a xe2x80x9cgraphic modexe2x80x9d has been set to xe2x80x9cLIPSxe2x80x9d. xe2x80x9cLIPSxe2x80x9d is a PDL (page description language for printer) made by Canon Inc. The printer receives the print command described by the page description language LIPS from the host computer and prints. There is xe2x80x9cimagexe2x80x9d as another setting. When this mode is set, the printer receives image data from the host computer and prints.
xe2x80x9cResolutionxe2x80x9d has been set to xe2x80x9cfinexe2x80x9d. In such a case, the printer prints at a resolution of 600 dpi. There is xe2x80x9cquickxe2x80x9d as another setting. When this mode is set, the printer prints at a resolution of 300 dpi.
xe2x80x9cColor modexe2x80x9d has been set to xe2x80x9cautoxe2x80x9d. In such a case, the printer automatically adjusts a color and gamma characteristics and prints. There is xe2x80x9cmanualxe2x80x9d as another setting. When this mode is set, the color converting process and gamma characteristics can be manually set in detail.
xe2x80x9cMonochrome-halftonexe2x80x9d has been set to xe2x80x9cpanelxe2x80x9d. In such a case, for a setting item showing which one of a plurality of halftone screens provided in the printer, the halftone screen set by an operation panel section of the printer (not shown) is used preferentially. There are xe2x80x9cpattern 1xe2x80x9d and xe2x80x9cpattern 2xe2x80x9d as other settings. A monochrome-halftone process is executed by the halftone screen of different specifications.
Although only the four items described above are displayed in the scroll list area 117, there are also a number of other setting items. Explanation will now be made with respect to only two items whose settings are changed by changing the print purpose among the five kinds (xe2x80x9ctext/tablexe2x80x9d, xe2x80x9cDTPxe2x80x9d, xe2x80x9cquick textxe2x80x9d, xe2x80x9cquick DTPxe2x80x9d, xe2x80x9csave tonerxe2x80x9d) instead of describing all of the setting items.
A setting item xe2x80x9csubstitute fontxe2x80x9d is set to xe2x80x9cpresencexe2x80x9d when the print purpose of xe2x80x9ctext/tablexe2x80x9d, xe2x80x9cquick textxe2x80x9d, or xe2x80x9csave tonerxe2x80x9d is selected, and it is set to xe2x80x9cabsencexe2x80x9d when the print purpose of xe2x80x9cDTPxe2x80x9d or xe2x80x9cquick DTPxe2x80x9d is selected. xe2x80x9cSubstitute fontxe2x80x9d denotes that the printer does not use the font using character shape data of a font section of a character which is used by the host computer but substitutes a font provided in the printer. By executing the font substitution, it is sufficient to use data of a character code as data which is transmitted from the host computer to the printer. Therefore, a transfer data amount can be reduced and a high print processing speed can be realized. On the, contrary, when the font substitution is not performed, since the host computer side sends the used character shape data (dot pattern of a character) to the printer, although a transfer data amount increases, a character shape desired on the host computer side can be reflected accurately to a print result.
The setting item xe2x80x9csave tonerxe2x80x9d is set to xe2x80x9cusexe2x80x9d in case of the print purpose xe2x80x9csave tonerxe2x80x9d and set to xe2x80x9cpanelxe2x80x9d in the other cases. xe2x80x9cSave tonerxe2x80x9d denotes that the dots to be printed black are decimated in accordance with a predetermined rule to thereby suppress a toner consumption quantity.
On the other hand, in case of printing an image (photograph image or the like) to a document to be printed in the conventional print system, the host computer designates coordinates, a width, a height, a resolution, magnifications of portrait/landscape, the number of bits per pixel, and the like when drawing image data for the printer and, subsequently, designates the image data. In case of printing an image, however, only one parameter group is designated, namely, a resolution of the image section is determined at the stage of generating a print command.
Generally, a graphic object such as character, figure, image, or the like to be drawn in a page is transformed to a bit map image at a timing when the print data (print command) is transmitted from the host computer. However, a memory for development of the bit map image as much as one page is necessary in such a case.
Most of the recent printers which can perform a printing process at a high resolution are designed so that the printing process can be performed at the highest resolution even if the printer does not have a memory which can store all of bit map images of one page at the highest resolution at which the printing process can be executed.
As a principle, images are stored in the draw command memory 406 in an intermediate state as draw commands, when the drawer 407 generates bit map images on the basis of the draw commands in the draw command memory 406, the bit map images of one page are not generated in a lump but, in place of it, the bit map images are generated on a unit basis of a band area (hereinafter, referred to as a band) of an almost same size obtained by slicing the page in the main scanning direction. Specifically speaking, at least two memory areas (hereinafter, referred to as band memories) which can store the bit map images of the bands are prepared. The drawer 407 generates a bit map image of the top band into one band memory (referred to as a band memory A) and, subsequently, generates a bit map image of the next band into another band memory (referred to as a band memory B). At a timing when the drawer 407 generates the bit map image in the band memory B, the engine interface 420 transfers the bit map image in the top band generated in the band memory A to the printer engine as a video image, generates a permanent visible image onto the sheet, and generates the bit map image of the next band (second band) into the band memory B for such a period of time. After the output from the band memory A is finished, the third bit map image is generated in the band memory A and the second band image generated in the band memory B is outputted. The above image output is alternately performed after that. That is, the above processes are realized by simultaneously performing in parallel the bit map image generating process and the video sending and printing processes to the printer engine by a multitask technique.
However, when an amount of characters, figures, or images to be drawn in the page is too large, an area size of the draw command memory 406 to store the draw commands as intermediate data transformed from the print commands is insufficient. In such a case, it is abandoned to print at the highest resolution. For example, a memory area which can store the bit map images of one page at the half resolution of the highest resolution is prepared (allocated). The drawer 407 generates the bit map images at the half resolution into such an area on the basis of the draw commands in the draw command memory 406. The draw commands transformed to the bit map images are erased. The subsequent print commands are transformed to the draw commands and stored into the empty memory area. When this area is full, the transformation to the bit map images at the half resolution and the erasure of the draw commands are repeated. When the reception of the print commands of one page is finished and the print commands are transformed to the draw commands and stored in the draw command memory 406, the drawer 407 transforms those draw commands to the bit map images. Subsequently, the engine interface 420 transfers the bit map images of the half resolution to the printer engine as video images and prints them at a low resolution.
In case of performing the resolution reducing process for the image section, in many cases, the picture quality deteriorates because a decimating process is fundamentally performed.
Although there is an example of introducing a technique such that the bit map images or draw commands are redundancy compressed prior to the resolution reducing process and the memory area is falsely widened, the redundancy compression is not universal and it is impossible to avoid the reduction of the resolution in a printer for printing without having a memory area which can store the bit map images of the highest resolution of the page,size to be printed.
Although a method whereby a memory area which can store the bit map images of the highest resolution is provided in the printer so that the reduction of the resolution is unnecessary is also considered, there is a problem of an increase in costs.
On the other hand, a data format such that image data of a plurality of qualities (for example, resolutions) is layered and handled is being spread in recent years. Eastmen Kodakxc2x0 FlashPix is an example of such a data format which is well known (xe2x80x9cFlashPixxe2x80x9d is a registered trademark of Eastmen Kodak. A file format of FlashPix and a conventional image format will now be described hereinbelow in comparison.
FIG. 2 shows an example of the conventional image format. As shown in FIG. 2, an image file is divided into a header section and an image data section. Generally, information that is necessary when data is read out from the image file and additional information for explaining the contents of images are stored in the header section. In the example of FIG. 2, information with respect to an image format identifier showing an image format, a file size, a width, a height, and a depth of an image, the presence/absence of compression, information of a color palette; a resolution, an offset to a storing location of the image data, and the like has been stored. The image data section is a section in which the image data has sequentially been stored.
As a typical example of such an image format, Microsoft BMP, and Compuserve GIF are widespread.
In a FlashPix file format, which will be explained hereinlater, image attribute,information stored in the image header section and the image data are further layered and stored in the file. The layered image files are shown in FIGS. 8 and 9. Each property and data in the file are accessed by a storage and a stream which correspond to a directory and a file of Microsoft MS-DOS (a xe2x80x9cMS-DOSxe2x80x9d is a registered trademark of Microsoft).
In FIGS. 8 and 9, a portion with a shadow shows the storage and a portion without a shadow indicates the stream. The image data and the image attribute information are stored in the stream portion. The image data has been layered at different resolutions and the images of the resolutions are called Subimages and shown by Resolution 0, Resolution 1, . . . , and Resolution n. For each resolution image, information necessary to read out the image is stored in a Subimage header and the image data is stored in Subimage data. A Property Set is a set in which the attribute information has been classified and defined in accordance with its use purpose and contents. There are a Summary Info. Property Set, an Image Info. Property Set, an Image Contents Property Set, and an Extension List Property Set.
The Summary Info. Property Set is not peculiar to FlashPix but is a Property Set which is indispensable in a structured storage of Microsoft Corporation and stores a title, an author, a thumbnail image, and the like of the file. The Image Contents Property Set is an attribute describing a storing method of the image data (FIG. 12). In the attributes, the number of layers of the image data, a width and a height of the image of the maximum resolution, a width, a height, and a construction of the color of the image of each resolution, or a definition of a quantization table or a Huffman table when using JPEG compression is described. The Image Info. Property Set stores various information which can be used when the image is used, for example, information indicating how the image is fetched and how it can be used.
Information regarding a method of fetching or generating digital data (File source)
Information regarding a copyright (Intellectual property)
Information regarding contents (a person, a location, or the like in the image) of the image (Content description)
Information regarding a camera used for photographing (Camera information)
Information of the settings (an exposure, a shutter speed, a focal distance, the presence/absence of a flash, and the like) of the camera upon photographing (Per Picture camera settings)
Information regarding a resolution and a mosaic filter which are peculiar to a digital camera (Digital camera characterization)
Information regarding the name of manufacturer, a product name, a kind (negative/positive, color/monochromatic), and the like of a film (Film description)
Information regarding a kind and a size in the case where an original is a book or a printed matter (Original document scan description)
Information regarding a scanner and software used and a person who operated the apparatus in case of a scan image (Scan device)
The Extension List Property Set is an area that is used when information which is not included in the fundamental specification of FlashPix is added.
A FlashPix Image View Object in FIG. 9 is an image file to store both viewing parameter and image data which are used when the image is displayed. The viewing parameter is a set of processing coefficients to store processes for rotation of the image, enlargement/reduction, movement, color conversion, and filtering so as to be adapted when the image is displayed.
A Source/Result FlashPix Image Object is a substance of the FlashPix image data. A Source FlashPix Image Object is indispensable. A Result FlashPix Image Object is an option. The Source FlashPix Image Object stores the original image data. The Result FlashPix Image Object stores the image as a result obtained by performing the image process by using the viewing parameter.
A Source/Result desc. Property Set is a Property Set to identify the image data and stores an image ID, a Property Set for change inhibition, date and time of final updating, and the like.
A Transform Property Set stores Affine transforming coefficients for rotation, enlargement/reduction, and movement, a color conversion matrix, a contrast adjustment value, and filtering coefficients.
Subsequently, handling of the image data will be described.
The image format of FlashPix includes images of a plurality of resolutions divided into tiles. FIG. 10 shows an example of an image file constructed by a plurality of images of different resolutions.
The image of the highest resolution shown in the diagram is constructed by (columnsxc3x97rows) of (Cxc3x97R). The image of the second highest resolution is constructed by (C/2xc3x97R/2). Subsequently, the number of columns and the number of rows are sequentially reduced by xc2xd at a time and the reducing process is repeated until both of the columns and rows are equal to 64 pixels or less. As a result of performing the layering process as mentioned above, xe2x80x9cthe number of layers in one image filexe2x80x9d is necessary as attribute information of the image, and the header information described in the term of the conventional image format and the image data are also necessary for the image of each layer. Information regarding the number of layers in one image file, the width and height of the image of the highest resolution, or information regarding the width, height, color construction, compressing method, and the like of the image of each resolution is described in the Image Contents Property Set (FIG. 12).
Further, the image of the layer of each resolution is divided into tiles each comprising (64xc3x9764 pixels) as shown in FIG. 11. If the image is sequentially divided into the titles each comprising (64xc3x9764 pixels) from the upper left portion of the image, there is a case where a blank occurs in parts of the right edge and lower edge tiles in dependence on the image. In such a case, (64xc3x9764 pixels) are constructed by repetitively inserting the rightmost image or bottom image, respectively. In FlashPix, the image in each tile is stored by a method of any of the JPEG compression, single color, and non-compression. The JPEG compression is an image compressing method which was international-standardized by ISO/IECJTC1/SC29. An explanation of the method itself is omitted here.
The image data divided into the titles as mentioned above is stored in the Subimage data stream. All of the total number of tiles, a size of each tile, a start position of the data, and the compressing method are stored in a Subimage header (FIG. 13). The single color is a method of expressing the color of the tile by one color without recording a value of each pixel only in the case where one tile is constructed by the same color as a whole. The above method is particularly useful for an image formed by computer graphics.
As mentioned above, in spite of a fact that the file format which can layer the image data of a plurality of resolutions and handle them is being spread, in the conventional print system, the operation such that data of a format having a plurality of resolutions is effectively handled in accordance with the print purpose or the like and is reflected to the finishing quality of a document to be printed cannot be realized. For example, as mentioned in the description regarding the print purpose setting picture plane, although the xe2x80x9cresolutionxe2x80x9d item which is set by designating the print purpose designates the print resolution of the whole document to be printed, the conventional print system does not have a function such as to designate at which resolution an image should be printed with respect to the image portion that is stored in a file having a data format in which image data of a plurality of resolutions is layered and handled.
Therefore, for example, when the user tries to print and output a document in which an image, characters, and a figure mixedly exist, there is nothing but a method of designating xe2x80x9chighest resolutionxe2x80x9d to the xe2x80x9cresolutionxe2x80x9d item even for a request such that a print quality of the image (gradation image such as a photograph image or the like) section is not specified although the user wants to print the figure at a high quality (high resolution). When the user tries to print such a document, there is a problem that if a figure or the like to be outputted at a high resolution has been drawn in a certain page and an image of a relatively high resolution which consumes remarkably a memory resource is included in the same page, a deterioration of the resolution due to the lack of a memory capacity occurs because of the output at the high resolution of the image which the user of the print system does not desire, and the print quality of the whole page to be printed deteriorates.
When xe2x80x9csave tonerxe2x80x9d is selected as a print purpose in order to suppress the consumption amount of the toner at the time of a test print, the finishing quality of the print obviously deteriorates due to the decimation of the black dots as mentioned above. Therefore, in spite of a fact that the convenience of the print system rises if the print data is printed and outputted in a short time due to such a quality deterioration, the operation such that image data of a quality (resolution) that is further lower than the designated resolution is selected and a size of print data is suppressed to thereby save the time that is required for test print cannot,be realized.
In case of performing a thumbnail print such that images of a plurality of pages are arranged in one page and printed, the images to be printed inherently in one page are reduced and arranged on the page and printed. Therefore, although the images of the page to be reduced can be processed at a resolution lower than the resolution that is inherently designated, the operation such that image data of a quality (resolution) that is further lower than the designated resolution is selected and a size of print data is suppressed to thereby save the time that is required for print cannot be realized.
The invention is made to solve the problems as mentioned above and it is an object of the invention to provide information processing apparatus and method and a memory medium, in which in the case where an image (gradation image) exists in text data as a print target, a quality of data to be outputted to a printer can be designated as print data corresponding to the image.
Another object of the invention is to provide information processing apparatus and method and a memory medium, in which in the case where images are printed by a plurality of pages onto one recording medium, a thumbnail image to be printed can be designated in accordance with the number of pages.
To solve the above problems, according to the first invention, for example, there is provided an information processing apparatus for outputting print data regarding text data whose print has been instructed to a printer, comprising:
storage holding means for storing and holding a plurality of image data of different resolutions;
designating means for designating a print quality;
selecting means for selecting the image data of the resolution according to the quality designated by the designating means from the storage holding means; and
output means for outputting the image data selected by the selecting means to the printer by a predetermined format.
Other features and advantages of the present invention will be apparent from the following description taken in conjunction with the accompanying drawings, in which like reference characters designate the same or similar parts throughout the figures thereof.
FIG. 1 is a diagram showing an example of a picture plane display of a print system which is used to designate a print quality;
FIG. 2 is a diagram showing an example of a format of image data;
FIG. 3 is a flowchart for a process to designate a print resolution and a quality of an FPX image in accordance with a print purpose;
FIG. 4 is a block constructional diagram of the print system;
FIG. 5 which is comprised of FIGS. 5A and 5B are showing flowcharts for a process to generate a print command of an FPX image section by a host computer of a print system of the first embodiment;
FIG. 6 is a diagram showing a logic structure of a print command to draw an FPX image which is generated by the host computer of the print system in each of the first and second embodiments;
FIG. 7 is a flowchart for a process to generate an FPX draw command;
FIG. 8 is a diagram showing a logic structure of a FlashPix image file;
FIG. 9 is a diagram showing a logic structure of a FlashPix image file;
FIG. 10 is a diagram showing an example of a plurality of images of different resolutions constructing the FlashPix image file;
FIG. 11 is a diagram for explaining a state of a tile division of a subimage of the FlashPix image file;
FIG. 12 is a diagram showing a logic structure of an Image Contents Property Set of the FlashPix image file;
FIG. 13 is a diagram showing a logic structure of a Subimage Header of the FlashPix image file;
FIG. 14 is a flowchart showing contents of an FPX draw command executing process;
FIG. 15 which is comprised of FIGS. 15A and 15B are flowcharts showing contents of a process to generate a print command of the FPX image portion by the host computer of the print system in the second embodiment; and
FIG. 16 is a diagram of a logic structure of the FPX image in the present invention.